Regex 正则表达式:检查字符串开头的字符
一些信息: 我有一个Delphi XE正则表达式:Regex 正则表达式:检查字符串开头的字符,regex,string,delphi,char,match,Regex,String,Delphi,Char,Match,一些信息: 我有一个Delphi XE正则表达式: (?<=[*+\/drt><=≥≤≠])\- 正则表达式必须匹配使表达式为负的“-”。例如: -(2*3) //Must Match 但不是: 2 - 3 //Must not Match 在上面的示例中,运算符用作负号,它不会使整个表达式为负数 我的解决方案是上面的正则表达式,它只匹配运算符后面的负号。如果减号前的字符是变量、数字或其他定义的关键字,则不匹配 我的问题 如果减号位于字符串的开头,则正则表达式不匹配,因为
(?<=[*+\/drt><=≥≤≠])\-
正则表达式必须匹配使表达式为负的“-”。例如:
-(2*3) //Must Match
但不是:
2 - 3 //Must not Match
在上面的示例中,运算符用作负号,它不会使整个表达式为负数
我的解决方案是上面的正则表达式,它只匹配运算符后面的负号。如果减号前的字符是变量、数字或其他定义的关键字,则不匹配
我的问题
如果减号位于字符串的开头,则正则表达式不匹配,因为前面没有字符,即使字符使整个表达式为负数。如何匹配此减号,即使它位于字符串开头且前面没有字符?匹配字符串开头或正字符类中的字符是
(?<=^|[*+/drt><=≥≤≠])-
^^
(?
请参阅。仅测试一个字符串,而不是在多行模式下测试所有字符串
注意:您不需要在字符类之外转义-
。也不需要转义/
字符,它不是一个特殊的正则表达式元字符,您不需要在Delphi中将其用作正则表达式分隔符。您可以尝试一下吗
(\-\().+(\))
以“-”(”开头,任意字符,后跟“)”
结果
-(2*3) //Must Match
2 - 3 //Must not Match
test -(2*3) //Must Match??
test -( 2*3 ) //Must Match??
test -() //Must not Match??
test -( ) //Must Match??
很难用正则表达式解析表达式
(\-\().+(\))
-(2*3) //Must Match
2 - 3 //Must not Match
test -(2*3) //Must Match??
test -( 2*3 ) //Must Match??
test -() //Must not Match??
test -( ) //Must Match??