我需要创建一个RegEx,它可以从字符串中获取PO BOX完整信息,我想我需要得到,然后其他所有内容到找到一整串数字的位置(po box编号)没问题,之后,只有当一个单词是数字和字母的组合才可以匹配时,如果整个单词是由数字组成的话那么它应该就此停止,即
来自以下字符串:
"Po Box 321 Stn Commerce Court 123 Sample St"
我需要在 123 Sample St 之前获取所有内容,如下所示:
"Po Box 321 Stn Commerce Court "
来自以下字符串:
"PO Box 456 Stn 1st Can Place"
我需要获取所有内容,因为在邮政信箱号码
之后,没有任何单词仅由数字组成到目前为止,我实现了第一个案例的工作,但我还没有找到适用于这两个字符串的表达式,
我的尝试:
Regex.Match(txtString.Text, @"PO BOX [0-9]+([\s\w][^0-9]*|\s[a-zA-Z0-9]\s)", RegexOptions.IgnoreCase)
谢谢
答案 0 :(得分:1)
您可以使用积极的展望:
PO BOX [0-9]+.*(?= \d+|$)
请参阅演示https://regex101.com/r/bK7nY2/1
或使用负面展望:
PO BOX [0-9]+((?!\d+ ).)*