我有代表方向的句子,我需要选择为这些方向指定的距离 - 只是数字。以下是示例:
"Head northwest on Lincoln St toward Warbuton Ave 0.1 mi" //0.1
"Head northwest on Middlefield Rd toward Embarcadero Rd 95 ft" //95
"Make a U-turn at Warbuton Ave 0.3 mi" //0.3
"Take the first right onto Embarcadero Rd 12.43 mi" //12.43
可能的单位说明符是“ft”和“mi”。数字本身通常是小数。挑选这些数字的正则表达式是什么?字符串中可能还有其他数字,但通常不是 xy.zw mi
的形式。
我从 \d*\.\d* mi
开始,但如果可能的话,我希望能够在同一表达式中检查 ft
。另外,我意识到对于非十进制数,这不起作用......我想需要将小数点和尾随数字设为可选。
最佳答案
您可以使用以下正则表达式..
(\d+(.\d+)?) (mi|ft)
这是一个例子.. ideone
编辑 正如 Ingo 在评论中所建议的那样,一个更好的正则表达式是......
(\d+(.\d+)?)\s*(mi|ft)\b
关于java - 正则表达式 - 在句子中的单位说明符之前选择一个数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17260112/