moving year in a date from the end to the front.
-
@Vegard-Johansen said in moving year in a date from the end to the front.:
i cant understand what im doing wrong
Could you give us a screenshot of your “Replace” dialog when you’re trying to use one of those regular expressions? We can probably figure out what setting you forgot to include.
-
-
Your Replace dialog looked right, so I went to your original post and (using my moderator powers) looked at the text you typed rather than what the forum rendered. When I copied from there and pasted into Notepad++, I saw
Please notice that the character between the
-4
and the497
is not a space; it is the special characterNBSP
(Non-breaking space). Because you said “i want to remove the space”, and did not accurately tell us what character was between there, we could not derive a regex that works. The\x20
in the regular expression only applies to the normal ASCII space character, not to a tab or to a NBSP or to any other space-like character.If your Notepad++ is not showing the
NBSP
symbol, then make sure you are on a relatively-recent Notepad++ version (v8.5 or newer), and make sure that View > Show Symbol > Show Non-printing Characters is turned on (has a checkmark next to it):
But back to your question:
Since we now know it’s a non-breaking space, we can change @guy038’s regular expression to
(?<=\d)\xA0+(?=\d)
, and that will match just if there’s a non-breaking space between those characters. If there might be any horizontal space (real space, tab, nbsp, or others), then use(?<=\d)\h+(?=\d)
instead, to make it match on any horizontal space.This shows the importance of knowing (and sharing) what the actual characters are.
-
@PeterJones Good catch! I started to suspect something like that. Would we have seen it if he had cut and pasted his input into a code block?
-
Would we have seen it if he had cut and pasted his input into a code block?
Nope, the forum turns NBSP into a normal space, even in a code block. (I tried before posting my reply). Code boxes are better, but they don’t give 100% of what’s being pasted. (This forum software was designed for generic use, and isn’t specialized in being able to post things that tend more toward the “binary” nature rather than “normal text”)
For @Vegard-Johansen and others who don’t know, the “code boxes” are generated by:
- Paste your text in the forum
- select that text
- Click the
</>
button on the forum’s post-editing toolbar :
This would take your text, and the edit panel would have shown
``` "120000" "various" "646958" "20220323" "12" "firstname lastname" "-4 497" "20220407" "646958" ```
and it would render as
"120000" "various" "646958" "20220323" "12" "firstname lastname" "-4 497" "20220407" "646958"
That would have been better than what you posted, because it at least showed the real quote marks rather than the “smart quotes” that we see in your post. But unfortunately, a special character like the NBSP doesn’t come through even then.
-
Hello, @Vegard-Johansen, @gerdb42, @alan-kilborn, @wonkawilly, @paul-wormer, @peterjones and All,
Good intuition, @peterjones, indeed !
I suppose that the
Non Breaking Space
characters are intentionally used between parts of a number. So, when the text of this document is wrapped, any number will be moved entirely to the next line and not separated in two parts ( one part at the end of a line and the remaining of the number on the next line )BR
guy038
-
Maybe answers in the future should use
[\x20\xA0]
to match spaces. :-(
Or maybe\h
is often appropriate (but it isn’t as exacting). -
@PeterJones @guy038 @Alan-Kilborn @gerdb42 And everyone else :)
Thank so much, this community is so nice. it worked with this one: (?<=\d)\xA0+(?=\d) in the document. hopefully it will work tonight when the system import file. i will let you know 100% tomorrow :) Again thank you so much for all help!
-
@Alan-Kilborn Why not use
\s
? It matches all 17 Unicode space characters and also tabs, new line and new paragraph characters. -
@Paul-Wormer said in moving year in a date from the end to the front.:
Why not use \s
For the same reason that I hesitatingly recommended
\h
… because it opens up the match to more than what is wanted, a dangerous thing to do with regex.