[英]Good way to find / replace using regex
我的值沒有被我們的OCR程序正確讀取。 這是可預測的,因此我想在正則表達式中使用查找/替換(因為這是我們已經在提取數據的方式)。
我們得到這樣的命名組: (?<Foo>.*?)
我想將“ N1123456”替換為“ NY123456”。 我們知道,當我們獲得N1時,我們期望紐約州。
我該如何嘗試以相同的正則表達式完成此操作?
編輯: (?<Foo>.*?)
將非數字和數字分組,並在非數字組之后添加Y
(\D+)(\d+)
這是演示
將其用\\b
或^
和$
括起來$
獲得更好的精度。
樣例代碼:
PHP:
$re = ""(\\D+)(\\d+)"";
$str = "N1123456";
$subst = '$1Y$2';
$result = preg_replace($re, $subst, $str, 1);
蟒蛇:
import re
p = re.compile(ur'(\D+)(\d+)')
test_str = u"N1123456"
subst = u"$1Y$2"
result = re.sub(p, subst, test_str)
Java:
System.out.println("N1123456".replaceAll("(\\D+)(\\d+)","$1Y$2"));
如果您希望N1
后面總是6位數字,則可以執行以下操作:
替換為: \\bN1(\\d{6})\\b
與此: NY$1
。
這將用NY
替換任何N1
后跟6位數字。
這就是我要做的:
Dim str = Regex.Replace("N1123456", @"\bN1(\d+)", "NY$1");
查找文本的表達式為N1,后跟數字,例如: \\bN1(\\d+)
。
這些數字屬於以下組(1):我希望在替換期間保留並附加到NY : NY$1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.