正则表达式新手,希望获得一些帮助。
我的任务是根据允许的重复或分布字符数量构建正则表达式。
这是我构建的正则表达式,但它不起作用,仅匹配重复的字符。
/(.).*\1{2}/g
如果我的字符串是“test”
,则正则表达式应该找到匹配项。如果量词是 3 并且我的字符串是 "1234343"
正则表达式应该找到匹配项。
此任务是一个更大项目的一部分,用户可以在 html 页面上配置用户名和密码的设置,并在表单提交时调用 java servlet 来构造正则表达式并将其保存到数据库中。
每当用户导航到重置密码页面时,它都会将正则表达式发送回 JavaScript 以验证新密码,验证也将在服务器端完成。
我正在尝试构建一个 javascript 友好的正则表达式,它也可以在 java 中工作。
非常感谢任何提示。我知道 javascript 中不支持lookbehind,但我不知道在构建正则表达式时还需要记住什么。
最佳答案
我认为您正在寻找:
(.)(.*\1){2}
这将找到一个重复3次的字符。
(.)_________
捕获字符的第一次出现。
___(.*\1)___
在 0 个或多个其他字符之后再次查找该字符...
_________{2}
重复两次,总共出现 3 次。
您需要 (___)
围绕您想要 {__}
重复的部分。并且您希望 {__}
中的出现次数少 1,因为 (.)
已经计为 1 次出现。
关于javascript - 正则表达式 - 重复或分布的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48897864/