LoginSignup
3
2

More than 3 years have passed since last update.

SynchRoidでの正規表現あれこれ

Posted at

SynchRoidでの正規表現に詰まったため、覚書程度になるが記しておく。

Case1

image.png

このように出力されている文章から

文頭の1929394 だけ取り出したい。

image.png

このように記述。

すると
image.png

きちんと出力できた。

* で をエスケープ
(\d{7})で、任意の 10 進数の数字 ( "0"、"1" ... "9" など) を7回繰り返しているものに一致するように指定。
.
 で、以降は何の文字列でもよいことを指定している。

Case2

image.png

このように出力されている文章から

てすと だけ取り出したい。

image.png

$1で出力範囲を()内だけに指定

数量を表すものは、10個 20箱 30人 5000円
など、数字+空白ではないもの、で構成されている。

そのため、

\s  => 任意の空白文字
\d*  => 数字(*にすることで桁数は何桁でもよい)
\s  => 任意の空白文字
\S  => 任意の非空白文字 ( " "、タブ、リターンなどを除外した "." と同じ)。

(※\Sは\Dでも良い)

というパターンを記述する。

image.png

きちんと出力できた。

Case3

image.png

この中から
@11人x20袋 だけ出力したい。

image.png

このように記述

image.png

きちんと出力できた。

ちなみに、
1番との組み合わせをすることも可能であり、

image.png

こう記述することで対応可能

その際、1番のような 1929394 を出力したい場合は

エクスプレッションに $1 を

今回のように@11人x20袋 を出力したいときは

エクスプレッションに $2 を いれてやることで出力が出来る。

また、エクスプレッション内を

「$1 + $2」とすることで

image.png

$1の結果と$2の結果を足して 出力することが出来る。

備考

正規表現の「*」とワイルドカードとしての「*」は別物である。

参考記事
(https://qiita.com/whisky-shusuky/items/d719c92c566c133f51b1)

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2