簡體   English   中英

使用正則表達式查找/替換的好方法

[英]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):我希望在替換期間保留並附加到NYNY$1

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM