【发布时间】:2014-09-15 08:22:42
【问题描述】:
我或多或少是个正则表达式新手。我试图将以下条件放入正则表达式:
- 字符串开头和结尾没有空格
- 允许所有数字
- 允许空格、点、括号、加号和减号
导致以下正则表达式:
^\S[\d\/. ()\-+]*\S$
但现在我尝试再应用两个条件:
- 只允许一个或两个 +
- 只允许一个(和一个)
我的问题是如何将这两个条件合并到上面的现有正则表达式字符串中,因为不包括 + [+]{1,2} 和 () [(]{1} [)]{1} 没有多大意义,因为我尝试以没有特定顺序的一般陈述,以便我将能够链接它。谢谢拉尔夫
【问题讨论】:
-
你想阻止
)301( 269-3451(所以左括号必须在右括号之前),你想禁止(301 269-3451(打开而不关闭,或者相反地关闭而不打开,尽管这可能在打开之前被抓住)。字符串可以以减号或点开头吗?(+- . -+)是否有效?你为什么不说不是?您的^\S允许以任何字母开头;这可能不是你想要的。另外,您打算使用哪些正则表达式子类? PCRE 的答案不同于awk或sed或 ...
标签: regex regex-negation regex-lookarounds