Javascript RegExp-它包括空格和括号
Javascript RegExp - it include space and brackets around
正则表达式的noob位
请检查我的尝试。
我想将没有连字符或其他字符的数字从括号中分离出来,然后在这些数字周围加引号
到目前为止,我有[^a-z-0-9]('d+)[^0-9-a-z]
匹配一组数字-不以数字或字符开头或结尾
它当前正在匹配(1,2),而不是1和2
测试
(0-hyphen-number) OR
(123 no hyphen) OR
(no hyphen 2) OR
(no 3 hyphen) OR
(no -4- hyphen) OR
(no -5 hyphen) OR
(no 6- hyphen) OR
(blah 0987 hyp1hen) OR
(blah -4321 hyp-2hen) OR
(blah -1234- hyp3-hen)
预期输出:)
(0-hyphen-number) OR
("123" no hyphen) OR
(no hyphen "2") OR
(no "3" hyphen) OR
(no -4- hycphen) OR
(no -5 hyphden) OR
(no 6- hyphen) OR
(blah "0987" hyp1hen) OR
(blah -4321 hyp-2hen) OR
(blah -1234- hyp3-hen)
您的正则表达式足够接近。但是,您应该将-
放在末尾或开头或字符类。
您应该捕获所有组并按如下方式替换它们。
Regex:([^a-z0-9-])('d+)([^0-9a-z-])
要进行的替换:用$1"$2"$3
替换
Regex101演示
do not have hyphen or other characters around them apart from brackets
您应该注意,您的原始正则表达式[^a-z-0-9]('d+)[^0-9-a-z]
匹配数字周围的任何标点符号。
因此,,888+
和,888]
或*888}
将匹配。
但你可能正在寻找类似的东西
(?:^|['s()])('d+)(?:['s()]|$)
其仅允许空白边界或括号的边界。
将['s()]
更改为['s(]
或['s}]
以满足您的需求。
修改:也可以得到以空格分隔的数字
https://regex101.com/r/pO4mO1/3
(?:^|['s()])('d+(?:'s*'d)*)(?:['s()]|$)
扩展
(?:
^
| ['s()]
)
( # (1 start)
'd+
(?: 's* 'd )*
) # (1 end)
(?:
['s()]
| $
)
当我加载Regex101时,它已经有了这个可用的正则表达式:[^a-z-0-9]('d+)[^0-9-a-z]
仅供参考(对于所有困惑的人),在帖子的早期修订中,正则表达式是^a-z-0-9[^0-9-a-z]
。另一位用户编辑了帖子,以反映他们在演示中看到的内容。
- 我如何找到一个句子中的所有空格并替换忽略它们
- Regex代码只允许一个空格
- 包括用于facebook评论框的JavaScript SDK
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 用空格替换下划线PHP
- 查找元素高度,包括边距
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- Javascript RegExp-它包括空格和括号
- JS正则表达式匹配单词,包括用空格括起来的单词
- jQuery:如果元素为空,不包括空格和注释
- 正则表达式匹配所有单词,包括标点符号和 unicode 字符.没有空格
- JavaScript 检查回文(包括空格和标点符号)
- 在除引号外的空格上拆分字符串,但包括不完整的引号
- 如何使用Jquery获取包括空格在内的整个字符串
- Javascript邮政编码,六位数字,不包括空格
- 常规的exp来检查至少200个字符,包括空格
- Regex for Should由8到20个数字字符组成,包括空格和一个连字符,并且连字符不能是第一个或最后一个字符
- 如何在Javascript中将字符串拆分为令牌,包括空格
- Angular过滤器去除字符串中不超过且包括第一个空格的所有字符