5

文字列のn番目の文字またはその前のスペース文字を見つける必要があります。

例、nが20であると仮定します:文字列内

 Find one space in the right place
^         ^       ^ ^
0         10      M 20

hは20番目の位置にあります。この場合、20番目の位置の前の最初のスペース、18番目の位置の「the」という単語の前のスペースをMのすぐ上で見つける必要があります。

次のようなポジティブルックビハインドを使用してn番目の文字を見つけることができます

(?<=.{80}).

しかし、最初のスペース文字が見つかるまで戻る必要があり、方法がわかりません。

可変長ルックビハインドをサポートしていないnotepad++を使用しています。可能であれば、notepad++でも正規表現を使用できるようにするための回答が必要です。ありがとう。

4

2 に答える 2

6

この正規表現を使用できます(引用符は除く):

"^.{1,19} "

末尾のスペースに注意してください。

これを Notepad++ 6.1.5 (投稿時の最新バージョン) でテストしました。機能リストによると、正規表現は PCRE 互換です (後読みは機能しますが、固定幅のみ)。上記の正規表現は、私が現在持っている古いバージョン (Notepad++ 5.9) では機能しません。

スペースを別のものに置き換える必要があるため、キャプチャ グループを使用してテキストを保持し、スペースのみを置き換えたい場合があります (引用符は除く):

"^(.{1,19}) " (Find)
"\1replace_space" (Replace)

注: 正規表現は、20 番目の文字の前または 20 番目の文字でスペースを検索します。スペースを厳密に 20 文字より前にしたい場合は、19 を 18 に変更します。

于 2012-08-13T13:14:04.403 に答える
-1

n = 20の場合、正規表現を使用します(\s)\S*.(?<=^.{20})

于 2012-08-13T13:14:15.840 に答える